package top.kaoshanji.p3ch22d;

import java.util.Vector;

/**
 * 代码清单-p3ch22d-272页a：被观察者
 * @author kaoshanji
 * ^_^
 * create time 2025/3/26 16:56
 */
public abstract class Subject {

    // 定义一个观察者数组
   private Vector<Observer> observerVector = new Vector<>();

    /**
     * 增加一个观察者
     * @param observer Observer
     */
   public void addObserver(Observer observer) {
       this.observerVector.add(observer);
   }

    /**
     * 删除一个观察者
     * @param observer Observer
     */
   public void delObserver(Observer observer) {
       this.observerVector.remove(observer);
   }

    /**
     * 通知所有观察者
     */
   public void notifyObservers() {
       for (Observer observer: this.observerVector) {
           observer.update();
       }
   }


}
